package cn.bugstack.domain.strategy.service.armory;

import java.util.Date;

/**
 * 策略抽奖调度
 */
public interface IStrategyDispatch {
    /**
     * 装配抽奖策略配置「触发的时机可以为活动审核通过后进行调用」
     *
     * @param strategyId 策略ID
     * @return 装配结果
     */

    /**
     * 默认的抽奖
     * @param strategyId
     * @return
     */
    Integer getRandomAwardId(Long strategyId);

    /**
     * 权重抽奖
     * @param strategyId
     * @param ruleWeightValue
     * @return
     */
    Integer getRandomAwardId(Long strategyId,String ruleWeightValue);

    /**
     * 根据策略id和奖品id，扣减奖品缓存库存
     * @param strategyId 策略id
     * @param awardId 奖品id
     * @return 扣减结果
     */

    Boolean subtractionAwardStock(Long strategyId, Integer awardId, Date endDateTime);
}
